DigiOffice Gateway Web Services

<back to all web services

ProcessProjectRequestMessage

Requires Authentication
import Foundation
import ServiceStack

public class ProcessProjectRequestMessage : Codable
{
    public var instanceId:String
    public var projectRequest:ProjectRequestMessage

    required public init(){}
}

public class ProjectRequestMessage : Codable
{
    public var header:Header
    public var projectReference:Reference
    public var includeHousingTypes:Bool
    public var includeConstructionBlocks:Bool
    public var includeConstructionNumbers:Bool
    public var includeDocuments:Bool
    public var includePurchaseContracts:Bool

    required public init(){}
}

public class Header : Codable
{
    public var messageID:String
    public var timestamp:Date
    public var sender:Party
    public var recipient:Party
    //requestMessageID:Object ignored. Type could not be extended in Swift

    required public init(){}
}

public class Party : Codable
{
    public var title:String
    public var code:String
    public var version:String
    public var environment:Environment

    required public init(){}
}

public class Environment : Codable
{
    public var title:String
    public var code:String

    required public init(){}
}

public class Reference : Codable
{
    public var globalID:String
    public var title:String

    required public init(){}
}

public class ProjectResponseMessage : Codable
{
    public var header:Header
    public var projectReference:Reference
    public var project:Project
    public var housingTypes:[HousingType] = []
    public var constructionBlocks:[ConstructionBlock] = []
    public var constructionNumbers:[ConstructionNumber] = []
    public var documents:[Document] = []
    public var purchaseContracts:[PurchaseContract] = []

    required public init(){}
}

public class Project : Codable
{
    public var globalID:String
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String
    public var code:String
    public var name:String
    public var description1:String
    public var description2:String
    public var address:Address
    public var mailingAddress:MailingAddress
    public var projectCategoryReference:Reference
    public var projectTypeReference:Reference
    public var projectStatusReference:Reference
    public var startDate:Date?
    public var endDate:Date?
    public var completionDate:Date?
    public var inactive:Bool
    public var website:String
    public var isTemplateProject:Bool
    public var customFields:[CustomField] = []

    required public init(){}
}

public class Address : Codable
{
    public var addressLine1:String
    public var addressLine2:String
    public var houseNumber:String
    public var houseNumberSuffix:String
    public var postalCode:String
    public var city:String
    public var country:Reference

    required public init(){}
}

public class MailingAddress : Codable
{
    public var poBox:String
    public var postalCode:String
    public var city:String
    public var country:Reference

    required public init(){}
}

public class CustomField : Codable
{
    public var name:String
    public var value:String

    required public init(){}
}

public class HousingType : Codable
{
    public var globalID:String
    public var projectReference:Reference
    public var code:String
    public var Description:String
    public var customFields:[CustomField] = []
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String

    required public init(){}
}

public class ConstructionBlock : Codable
{
    public var globalID:String
    public var projectReference:Reference
    public var code:String
    public var Description:String
    public var customFields:[CustomField] = []
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String

    required public init(){}
}

public class ConstructionNumber : Codable
{
    public var globalID:String
    public var projectReference:Reference
    public var housingTypeReference:Reference
    public var constructionBlockReference:Reference
    public var code:String
    public var Description:String
    public var address:Address
    public var rentalHouse:Bool
    public var guaranteeCertificateNumber:String
    public var inactive:Bool
    public var customFields:[CustomField] = []
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String
    public var viewingDate:Date?
    public var viewingDateSpecified:Bool
    public var deliveryDate:Date?
    public var deliveryDateSpecified:Bool

    required public init(){}
}

public class Document : ICustomProperties, Codable
{
    public var id:String
    public var rootDocumentID:String
    public var registrationprofileID:String
    public var title:String
    public var fullTitle:String
    public var number:String
    public var version:String
    public var externalNumber:String
    public var externalVersion:String
    public var internalNumber:String
    public var internalInvoiceNumber:String
    public var personID:Int
    public var relationID:Int
    public var relationTitle:String
    public var projectID:Int
    public var projectTitle:String
    public var `extension`:String
    public var date:Date?
    public var commentsCount:Int
    public var hasComments:Bool
    public var hasPreview:Bool
    public var extraField:String
    public var isFavorite:Bool
    public var documentcategoryText:String
    public var fileSize:Int?
    public var fileDate:Date?
    public var hash:String
    public var hashType:String
    public var fileUrl:String
    public var standardDocumentUrl:String
    public var isCorporateIdentity:Bool
    public var userTitle:String
    public var isFrozen:Bool
    public var internalCompanyID:Int
    public var directUrl:String
    public var allowDigitalSigningOnlyOnPrimaryVersions:Bool
    public var isPrimaryVersion:Bool
    public var fileExtension:String
    public var customProperties:[String:Object] = [:]

    required public init(){}
}

public class PurchaseContract : Codable
{
    public var globalID:String
    public var code:String
    public var Description:String
    public var projectReference:Reference
    public var productCode:String
    public var relation:Relation
    public var inactive:Bool
    public var customFields:[CustomField] = []
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String

    required public init(){}
}

public class Relation : Codable
{
    public var globalID:String
    public var nameLine1:String
    public var nameLine2:String
    public var address:Address
    public var mailingAddress:MailingAddress
    public var telephone:String
    public var mobile:String
    public var email:String
    public var iban:String
    public var bankAccountNumber:String
    public var website:String
    public var inactive:Bool
    public var customFields:[CustomField] = []
    public var creationDate:Date?
    public var createdBy:String
    public var modifiedDate:Date?
    public var modifiedBy:String

    required public init(){}
}


Swift ProcessProjectRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ProjectRequest: 
	{
		Header: 
		{
			MessageID: String,
			Timestamp: 0001-01-01,
			Sender: 
			{
				Title: String,
				Code: String,
				Version: String,
				Environment: 
				{
					Title: String,
					Code: String
				}
			},
			Recipient: 
			{
				Title: String,
				Code: String,
				Version: String,
				Environment: 
				{
					Title: String,
					Code: String
				}
			},
			RequestMessageID: {}
		},
		ProjectReference: 
		{
			GlobalID: String,
			Title: String
		},
		IncludeHousingTypes: False,
		IncludeConstructionBlocks: False,
		IncludeConstructionNumbers: False,
		IncludeDocuments: False,
		IncludePurchaseContracts: False
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Header: 
	{
		MessageID: String,
		Timestamp: 0001-01-01,
		Sender: 
		{
			Title: String,
			Code: String,
			Version: String,
			Environment: 
			{
				Title: String,
				Code: String
			}
		},
		Recipient: 
		{
			Title: String,
			Code: String,
			Version: String,
			Environment: 
			{
				Title: String,
				Code: String
			}
		},
		RequestMessageID: {}
	},
	ProjectReference: 
	{
		GlobalID: String,
		Title: String
	},
	Project: 
	{
		GlobalID: String,
		CreationDate: 0001-01-01,
		CreatedBy: String,
		ModifiedDate: 0001-01-01,
		ModifiedBy: String,
		Code: String,
		Name: String,
		Description1: String,
		Description2: String,
		Address: 
		{
			AddressLine1: String,
			AddressLine2: String,
			HouseNumber: String,
			HouseNumberSuffix: String,
			PostalCode: String,
			City: String,
			Country: 
			{
				GlobalID: String,
				Title: String
			}
		},
		MailingAddress: 
		{
			POBox: String,
			PostalCode: String,
			City: String,
			Country: 
			{
				GlobalID: String,
				Title: String
			}
		},
		ProjectCategoryReference: 
		{
			GlobalID: String,
			Title: String
		},
		ProjectTypeReference: 
		{
			GlobalID: String,
			Title: String
		},
		ProjectStatusReference: 
		{
			GlobalID: String,
			Title: String
		},
		StartDate: 0001-01-01,
		EndDate: 0001-01-01,
		CompletionDate: 0001-01-01,
		Inactive: False,
		Website: String,
		IsTemplateProject: False,
		CustomFields: 
		[
			{
				Name: String,
				Value: String
			}
		]
	},
	HousingTypes: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	ConstructionBlocks: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	ConstructionNumbers: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			HousingTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionBlockReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			Address: 
			{
				AddressLine1: String,
				AddressLine2: String,
				HouseNumber: String,
				HouseNumberSuffix: String,
				PostalCode: String,
				City: String,
				Country: 
				{
					GlobalID: String,
					Title: String
				}
			},
			RentalHouse: False,
			GuaranteeCertificateNumber: String,
			Inactive: False,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String,
			ViewingDate: 0001-01-01,
			ViewingDateSpecified: False,
			DeliveryDate: 0001-01-01,
			DeliveryDateSpecified: False
		}
	],
	Documents: 
	[
		{
			GlobalID: String,
			RootDocumentID: String,
			Code: String,
			Subject: String,
			VersionNumber: String,
			NewestVersion: False,
			RelationReference: 
			{
				GlobalID: String,
				Title: String
			},
			DocumentTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionBlockReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionNumberReference: 
			{
				GlobalID: String,
				Title: String
			},
			HousingTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			Floor: 0,
			FloorSpecified: False,
			DeletedDate: 0001-01-01,
			DeletedDateSpecified: False,
			File: 
			{
				Type: String,
				Name: String,
				Size: 0,
				Content: String,
				ModifiedDate: 0001-01-01
			},
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	PurchaseContracts: 
	[
		{
			GlobalID: String,
			Code: String,
			Description: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			ProductCode: String,
			Relation: 
			{
				GlobalID: String,
				NameLine1: String,
				NameLine2: String,
				Address: 
				{
					AddressLine1: String,
					AddressLine2: String,
					HouseNumber: String,
					HouseNumberSuffix: String,
					PostalCode: String,
					City: String,
					Country: 
					{
						GlobalID: String,
						Title: String
					}
				},
				MailingAddress: 
				{
					POBox: String,
					PostalCode: String,
					City: String,
					Country: 
					{
						GlobalID: String,
						Title: String
					}
				},
				Telephone: String,
				Mobile: String,
				Email: String,
				IBAN: String,
				BankAccountNumber: String,
				Website: String,
				Inactive: False,
				CustomFields: 
				[
					{
						Name: String,
						Value: String
					}
				],
				CreationDate: 0001-01-01,
				CreatedBy: String,
				ModifiedDate: 0001-01-01,
				ModifiedBy: String
			},
			Inactive: False,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	]
}